new Vue({
    el:"#app",
    data:{
        username:"",
        headimg:"",
        title:"",
        loginUserId:"0",
        userType:"",      // 用户类型 0：普通用户 1：付费用户 2：管理员
        total:"1",         // 总页数
        pageNum:"1",      // 当前页数,默认为1
        topicList:[]      // 帖子集合
    },
    methods:{
        //获取评论内容
        getTopicList:function () {
            //在当前方法中定义一个变量，表明是vue对象
            var _this = this;
            axios.get('/consumer/topic/getTopicList',{
                params:{
                    // 默认拿第一页
                    pageNum:_this.pageNum,
                    title:_this.title
                }
            })
                .then(function (response) {
                    //把返回的集合赋值给这里的list集合
                    _this.topicList = response.data.data.data;
                    _this.total = Math.ceil(response.data.data.total / 5);
                    if (_this.total == 0) {
                        _this.total = 1;
                    }
                })
                .catch(function (error) {
                    console.log(error);
                })
        },
        //下一页
        nextPage:function () {
            //在当前方法中定义一个变量，表明是vue对象
            var _this = this;
            //判断当前页面是否为最后一页
            if (_this.pageNum == _this.total) {
                //页面跳转
                alert("已经是最后一页了噢！~");
            } else {
                //页数 + 1
                _this.pageNum = Number(_this.pageNum) + 1;
                //重新执行查询分页方法
                _this.getTopicList();
            }
        },
        //上一页
        prePage:function () {
            //在当前方法中定义一个变量，表明是vue对象
            var _this = this;
            //判断当前是否为第一页
            if (_this.pageNum == 1){
                //如果是第一页的话就不用动,返回第一页
                alert("已经是第一页了噢！~");
            } else {
                //如果不是第一页的话就直接pageNum - 1
                _this.pageNum = Number(_this.pageNum) - 1;
                //重新执行查询分页方法
                _this.getTopicList();
            }
        },
        // 总帖子数
        getTopicTotalCount:function () {
            //在当前方法中定义一个变量，表明是vue对象
            var _this = this;
            axios.get('/consumer/topic/getTopicList',{
                params:{
                    pageNum:_this.pageNum,
                    title:_this.title
                }
            })
                .then(function (response) {
                    _this.topicList = response.data.data.data;
                    //把返回的总页数赋值给这里的总页数, 总数量/10 = 总页数
                    _this.total = Math.ceil(response.data.data.total / 5);
                    if (_this.total == 0) {
                        _this.total = 1;
                    }
                })
                .catch(function (error) {
                    console.log(error);
                })
        },
        // 设置评论id
        setTopicId:function (topicId) {
            //在当前方法中定义一个变量，表明是vue对象
            var _this = this;
            //axios的post方式需要一个formData来传参
            var formData = new FormData();
            formData.append('topicId', topicId);
            var config = {
                headers: {
                    'Content-Type': 'multipart/form-data'
                }
            }
            axios.post('/consumer/topic/setTopicId',formData,config)
                .then(function (response) {
                    window.location.href = "topicDetail.html";
                })
                .catch(function (error) {
                    console.log(error);
                })
        },
        getLoginUserById:function () {
            var _this = this;
            axios.get('/consumer/user/getLoginUserById')
                .then(function (response) {
                    //把返回的user对象的id赋值给这里的id
                    if (response.data != null) {
                        _this.loginUserId = response.data.data.id;
                        _this.username = response.data.data.username;
                        _this.headimg = response.data.data.headimg;
                        _this.userType =  response.data.data.userType;
                    }
                })
                .catch(function (error) {
                    console.log(error);
                })
        },
        setSelfUserId:function (userId) {
            //在当前方法中定义一个变量，表明是vue对象
            var _this = this;
            //axios的post方式需要一个formData来传参
            var formData = new FormData();
            formData.append('userId', userId);
            var config = {
                headers: {
                    'Content-Type': 'multipart/form-data'
                }
            }
            axios.post('/consumer/user/setSelfUserId',formData,config)
                .then(function (response) {
                    // alert(userId + " == " + _this.loginUserId)
                    if (userId == _this.loginUserId) {
                        // 如果id是登录的用户id的话就直接跳转到自己的页面, 否则跳转到其他人的页面
                        window.location.href = "self.html";
                    } else {
                        window.location.href = "other.html";
                    }
                })
                .catch(function (error) {
                    console.log(error);
                })
        },
        // 登出流程
        loginOut:function () {
            //在当前方法中定义一个变量，表明是vue对象
            var _this = this;
            axios.get('/consumer/token/loginOut')
                .then(function (response) {
                    if (response.data.code == 1) {
                        alert("账号已登出！");
                        // 刷新当前页面
                        window.location.reload();
                    }
                })
                .catch(function (error) {
                    console.log(error);
                })
        },
        // 关注
        followUser:function (userId) {
            //在当前方法中定义一个变量，表明是vue对象
            var _this = this;
            //axios的post方式需要一个formData来传参
            var formData = new FormData();
            formData.append('userId', Number(userId));
            var config = {
                headers: {
                    'Content-Type': 'multipart/form-data'
                }
            }
            axios.post('/consumer/follow/followUser',formData,config)
                .then(function (response) {
                    if (response.data.code == 1) {
                        alert("关注成功！");
                        // 刷新当前页面
                        window.location.reload();
                    }
                })
                .catch(function (error) {
                    console.log(error);
                })
        }
    },
    created:function () {

        //创建的时候先执行判断是否登录的方法
        this.getLoginUserById();

        // 获取帖子的总页数
        this.getTopicTotalCount();

        // 获取帖子内容集合
        this.getTopicList();

    }
});